perm filename TEST.PAL[HAL,HE]3 blob
sn#155545 filedate 1975-04-24 generic text, type C, neo UTF8
COMMENT ā VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 GENERAL PURPOSE TEST ROUTINE
C00003 00003 program initialization
C00012 ENDMK
Cā;
;GENERAL PURPOSE TEST ROUTINE
.INSRT HALHED.PAL[HAL,HE]
.=STRT11
.INSRT HALIO.PAL[HAL,HE]
;INSRT HALRTR.PAL[HAL,HE]
;INSRT GRAPHS.PAL[HAL,HE]
;INSRT FBUG.PAL[1,BES]
;INSRT ARITH.PAL[HAL,HE]
.INSRT INTERP.PAL[HAL,HE]
;Data areas
.BLKW 100
STACK: .BLKW 1
ARG1: .BLKW 32. ;Long enough for a trans
ARG2: .BLKW 32. ;Long enough for a trans
RES: .BLKW 32. ;Long enough for a trans
CURIN: INBUF ;Current line pointer
; program initialization
START: RESET
MOV #500,SP ;initialize stack
CLR PS ;initialize processor status
CLKIN: CLR CLKCNT ;clear clock registers- trap restart
CLR CLKSET
CLR CLKS
MOV #043400,R0 ;No interrupts, single precision
LDFPS R0 ;Load Floating Processor Status
MOV #16,R0 ;Field length
MOV #10,R1 ;Decimal digits
JSR PC,FORMAT ;
MOV #STACK,R3 ;Set up argument stack
TEST: CRLF ;
CRLF
MOV #ARG1,R0 ;
JSR PC,SCALIN ;Get first argument
MOV #ARG2,R0 ;
JSR PC,SCALIN ;Get second argument
MOV #1000.,R4 ;Do the test 1000 times
CLR CLKSET ;
MOV #21,CLKS ;Start counting up
TST1: MOV #STACK,R3 ;Set up argument stack
MOV #ARG1,-(R3) ;Restore interpreter stack
MOV #ARG2,-(R3) ; with both arguments.
JSR PC,SADD ;Call the routine under test
SOB R4,TST1 ;Do it over and over
CLR CLKS ;Stop the clock
MOV CLKCNT,R0 ;R0 ā Number of 10 micros elapsed
JSR PC,TYPDEC ;Print it.
MOV (R3)+,R0 ;
JSR PC,SCLOUT ;Print answer
BR TEST ;Over and over
PATCH: .BLKW 100
.END START